查看原文
其他

SubQuery开发者指南丨清单文件(Manifest File)

区块链数据提供者 SubQuery中文站 2021-12-08


Manifest project.yaml 文件可以被看作是项目的入口,它定义了关于 SubQuery 如何索引和转换链数据的大部分细节。


Manifest 可以是 YAML 或 JSON 格式。 在本文档中,我们将在所有示例中使用 YAML格式。 以下是一个基本 project.yaml 的标准示例。


specVersion: "0.0.1"description: ""repository: "https://github.com/subquery/subql-starter"
schema: "./schema.graphql"
network:endpoint: "wss://polkadot.api.onfinality.io/public-ws"# Optionally provide the HTTP endpoint of a full chain dictionary to speed up processingdictionary: "https://api.subquery.network/sq/subquery/dictionary-polkadot"
dataSources:- name: mainkind: substrate/RuntimestartBlock: 1mapping:handlers:- handler: handleBlockkind: substrate/BlockHandler- handler: handleEventkind: substrate/EventHandlerfilter: #Filter is optional but suggested to speed up event processingmodule: balancesmethod: Deposit- handler: handleCallkind: substrate/CallHandler


  • network.endpoint 定义了要编入索引的区块链的 wss 或 ws 端点——这必须是一个完整的存档节点。

  • network.dictionary 选择性地提供完整链字典的 HTTP 端点以加快处理速度 - 点击链接:
    https://doc.subquery.network/tutorials_examples/dictionary.html 查看 SubQuery 字典的工作原理。

  • dataSources 定义了将被过滤和提取的数据,以及要应用的数据转换的映射函数处理程序的位置。

    • Kind 目前只支持 substrate/Runtime

    • startBlock 详细说明了开始索引的块高度。

    • filter 将根据网络端点规范名称过滤要执行的数据源,请参阅网络过滤器:
      https://doc.subquery.network/create/manifest.html#network-filters

    • mapping.handlers 将列出所有映射函数及其相应的处理程序类型
      (https://doc.subquery.network/create/mapping.html),
      以及额外的映射过滤器
      (https://doc.subquery.network/create/manifest.html#mapping-filters)。

网络过滤器(Network Filters)



通常用户会创建一个 SubQuery 项目,并希望在他们的测试网和主网环境(例如 Polkadot 和 Kusama)中重复使用它。 在网络之间,各种选项可能不同(例如索引起始块)。 因此,我们允许用户为每个数据源定义不同的细节,这意味着一个 SubQuery 项目仍然可以跨多个网络使用。

用户可以在 dataSources 命令上添加 filter 命令来决定在网络上运行哪个数据源。


下面的示例显示了 Polkadot 和 Kusama 网络的不同数据源。


...network:endpoint: "wss://polkadot.api.onfinality.io/public-ws"#Create a template to avoid redundancydefinitions:mapping: &mymappinghandlers:- handler: handleBlockkind: substrate/BlockHandler
dataSources:- name: polkadotRuntimekind: substrate/Runtimefilter: #OptionalspecName: polkadotstartBlock: 1000mapping: *mymapping #use template here- name: kusamaRuntimekind: substrate/Runtimefilter:specName: kusamastartBlock: 12000mapping: *mymapping # can reuse or change

映射过滤器(Mapping Filters)



Mapping filters 是一个非常有用的功能,它可以决定什么块、事件或外在因素会触发映射处理程序。


只有满足过滤条件的传入数据才会被映射函数处理。 映射过滤器是选择性使用的,但我们建议使用,因为它们会显着减少 SubQuery 项目处理的数据量并提高索引性能。


#Example filter from callHandlerfilter:module: balancesmethod: Depositsuccess: true


下表说明了不同处理程序支持的过滤器。


处理程序

支持的过滤器

BlockHandler

specVersion

EventHandler

module,method

CallHandler

module,method ,success


  • 任何基于底层的链都支持 module 和 method filters。

  • success filter 采用布尔值,可用于按成功状态过滤外在因素。

  • specVersion filter 指定了substrate 区块的spec 版本范围。以下示例描述如何设置版本范围。


filter:specVersion: [23, 24] #Index block with specVersion in between 23 and 24 (inclusive).specVersion: [100] #Index block with specVersion greater than or equal 100.specVersion: [null, 23] #Index block with specVersion less than or equal 23.

定制链
(Custom Chains)



您还可以通过在 project.yaml 中加入链类型来索引自定义链中的数据。 在 network.types 中声明此区块链支持的特定类型。 我们支持底层运行模块时使用的其他类型。


我们还支持 typesAlias、typesBundle、typesChain 和 typesSpec。



Website:
https://www.subquery.network/

Telegram:
https://t.me/subquerynetwork

Twitter:
https://twitter.com/subquerynetwork

Medium:
https://subquery.medium.com/

Github:
https://github.com/subquery/subql

Matrix:
https://matrix.to/#/#subquery:matrix.org

Linkedin:
https://www.linkedin.com/company/subquery

Mixin:
https://subquery.mixinbots.com/join


往期精彩


《SubQuery丨全球大使招募计划》


《SubQuery丨让去中心化数据近在眼前》


《SubQuery丨首秀 AMA ,精彩内容》


《SubQuery丨字典索引新功能,性能提高10倍》

《SubQuery 让波卡生态垮链数据更易获取》


《SubQuery丨我们的目标和竞争优势》


《SubQuery丨2021年7月回顾》


《SubQuery丨开发者快速入门指南》


《SubQuery丨Hello world 入门简介》


《SubQuery View : Astar 会是波卡生态的 DApp 中心枢纽吗?》


《战略合作丨Karura 与 SubQuery 合作,为 Kusama Builders 提供 DeFi 数据》

《SubQuery 联合 Moonbeam ,共同致力于波卡生态的发展》

《SubQuery对话Phala,打造Web 3.0共享云生态》


《SubQuery开发者指南丨Hello World Explained》


《战略合作丨SORA 与 SubQuery 合作向 SORA 网络提供数据》


《SubQuery开发者指南丨Hello World (由SubQuery 托管)》


《战略合作丨SubQuery为Subscan的多重签名工具提供支持》


《SubQuery丨从竞拍者到支持者,Bifrost如何用SALP协议助力插槽竞拍》


《SubQuery 开发者指南丨安装 SubQuery》

《SubQuery获得900万美元融资,由Arrington Capital、DCG和Stratos Technologies领投》


《SubQuery对话Litentry:未来已来,元宇宙世界里你需要的是什么?》

《SubQuery开发者指南丨创建一个SubQuery项目》

《SubQuery丨2021年8月回顾》

《战略合作丨SubQuery支持DotMarketCap 2.0发布》

《SubQuery丨带你走进进化星球的世界》





扫码获取SubQuery更多官方信息



: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存